import os

from django.conf import settings
from django.template import loader

from apps.contents.models import ContentCategory
from apps.contents.utils import get_categories


def generate_static_index_html():
    # 1.商品分类，数据显示
    print("定时任务crontab静态化首页")
    categories = get_categories()
    # 2.广告数据显示
    contents = {}
    # 2.1获取广告分类
    ad_categories = ContentCategory.objects.all()
    # 2.2遍历广告分类---找到广告对应的内容e
    for ad_cat in ad_categories:  # status表示是否还存在
        # ad_cat.key通过不同的类别赋予不同的内容
        contents[ad_cat.key] = ad_cat.content_set.filter(status=True).order_by("sequence")

    context = {
        'categories': categories,
        'contents': contents
    }

    # 获取首页模板文件
    template = loader.get_template('index.html')
    # 渲染首页html字符串
    html_text = template.render(context)
    # 将首页html字符串写入到指定目录，命名'index.html'
    file_path = os.path.join(settings.STATIC_GENERIC_HTML, 'index.html')
    with open(file_path, 'w', encoding='utf-8') as f:
        f.write(html_text)


# # 添加定时任务到系统中
#  python manage.py crontab add
# # 显示已激活的定时任务
#  python manage.py crontab show
# # 移除定时任务
#  python manage.py crontab remove